<?php

/**
 *
 * Author: Ivan (http://explay.su/users/245.html)
 *
 */

if (!defined('EXPLAY')) exit;

if (is_cached ('tags.php', (3600))) $content = file_get_contents ($_SERVER['DOCUMENT_ROOT'].'/include/cache/tags.php');
else {
        $content = build_tags_content ();
        cache_file ('tags.php', $content);
}

$block = array ();
$block['header'] = $block_header;
$block['name'] = $block_name;
$block['content'] = $content;

Templater::set_var ('block', $block);

($align == 'left')
	? CORE::add_block (Templater::display ('block.tpl'), 'left')
	: CORE::add_block (Templater::display ('block.tpl'), 'right');

function build_tags_content () {
        global $db;

        $get_tags = $db->query ("SELECT art_tags FROM ".DB_PEREFIX."_articles ORDER BY art_id DESC LIMIT 0, 400");
		
        $arr = array();

        // Формируем масив в котором ключи - уникальные тэги, а значения - их вес

        while (list ($tags) = $db->fetch_row ($get_tags)) {
                if (trim ($tags) != '') {
                        $tag = explode (',', $tags);

                        for ($i=0; $i<count($tag); $i++) {
                                $stag = mb_strtolower(trim($tag[$i]));
                                if(isset($arr[$stag])){
                                    $arr[$stag]++;
                                }else{
                                    $arr[$stag] = 1;
                                }
                        }
                }
        }
		
		if (count ($arr) == 0) return 'нет тегов';

        arsort($arr); // сортируем по весу
        $arr = array_slice($arr, 0, 70); // срезаем 70
        ksort($arr); // сортируем по именам
        $vals = array_values($arr);
        $min = min($vals)-1; // наименьший вес - 1
        $max = max($vals); // наибольшее значение

        $min = $min>1?$min:1;
        $max = $max>1?$max:2;

        $max_size = 40; // Максимальный размер 40px
        $k = $max_size/(log($max-$min+1)); // коэфициент

        $content .= "<div id=\"art_tags\" class=\"cloud\">\n";

        // Выводим
        foreach($arr as $tag => $ves) {

                $size = log($ves+1-$min)*$k;
                $size = $size>10?$size:10;
                $size = $size<40?$size:40;

                $content .= "\n<a href=\"/articles/?tagname=".urlencode($tag)."\" style=\"font-size:{$size}px;\">{$tag}</a><sub style=\"color:rgb(200,200,200)\">".$ves."</sub> ";
        }
        $content .= "\n</div>";

        return $content;
}

